<?php
/**
 * Zerlegt den QueryString einer Url in seine Bestandteile
 * 
 * Format:
 * http://www.loresoft.de/path1/path2?queryString+FragmentId
 * scheme://domain/path?queryString#fragmentId
 * scheme://domain:port/path?queryString#fragmentId
 * scheme://username:password@domain:port/path?queryString#fragmentId
 *
 * @author		Joachim Ruf
 * @copyright	Copyright (c) 2003-2013 Loresoft Software (http://www.loresoft.de)
 * @license		http://yapary.loresoft.de/lizenzbedingungen     New BSD License
 *
 * */


Class Yapary_WWW_Url_UrlQueryStringData
{
	private $queryString = null;

	
	/**
	 * @param string $queryString	: QueryString im Format ?var1=1&var2=2&var3=3...
	 * */
	function __construct ($_queryString = NULL) {
		if ($_queryString == NULL) {
			
		}
		
		$this->queryString = $_queryString;
	}
	

	/**
	 * @desc Ausgabe der Parameter als Array
	 * array(var1=>val1, ...)
	 * @return array
	 * */
	public function toList () {
		$arrResult = array();
		$arrTmp    = array();
	
		$arrTmp = explode('?', $this->queryString);

		if (isset($arrTmp[1])) {
			$arrTmp2 = explode('&', $arrTmp[1]);
			if (count($arrTmp2)>= 1 && count($arrTmp2)<= 30) {
				while (list(,$entry) = each($arrTmp2)) {
					$tmp2 = explode('=', $entry);
					if (preg_match('/^([a-zA-z_]{1,}[a-zA-z0-9_]{0,})$/', $tmp2[0]) && preg_match('/^(.*){0,100}$/', $tmp2[1])) {
						if (isset($tmp2[1])) {
							$arrResult[$tmp2[0]] = $tmp2[1];
						}
					}
				}
			}
		}
		
	
		return $arrResult;
	}
	
	
	/**
	 * @desc Ausgabe der Daten als String
	 * @return string
	 * */
	public function toString () {
		return $this->queryString;
	}

}



?>